<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <script>
    /* 
      原型是什么?
        一个对象,我们称prototype为原型对象
      原型的作用?
        共享方法
      一般情况下,我们将公共的属性定义到构造函数里面,公共的方法我们放到原型对象
     */
    const Star = function (uname, age) {
      this.uname = uname;
      this.age = age;
      /* this.sing = function () {
        应该将方法,放入原型对象中去
        console.log(`好事多为`);
      }; */
    };
    Star.prototype.sing = function () {
      console.log(`大家好,以后将所有的方法都放到原型中吧,这样可以节约内存空间`);
    };
    let ldh = new Star("鸠摩智", 29);
    let zxy = new Star("张学友", 19);
    ldh.sing();
    console.log(ldh.sing === zxy.sing);
    // 对象下的原型
    console.log(`对象下的原型等于实列对象下的原型`, ldh.__proto__ === Star.prototype);
  </script>
</body>

</html>